home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swagd_f.zip / EGAVGA.SWG / 0008_EGAPALET.PAS.pas < prev    next >
Pascal/Delphi Source File  |  1993-05-28  |  628b  |  24 lines

  1. {
  2. > I once saw a Procedure that set the palette With RGB inputs, like the
  3. > 256- colour palette setter (RGBSetPalette).  It used some SHLs
  4. > and SHRs to reduce the inputted values For red, green, and
  5. > blue to 2-bit values (or somewhere around there).
  6. }
  7.  
  8. Procedure EGAPalette(c_index, red, green, blue : Byte);
  9. Var
  10.   i    : Integer;
  11.   regs : Registers;
  12. begin
  13.   red   := red SHR 6;
  14.   green := green SHR 6;
  15.   blue  := blue SHR 6;
  16.   i     := (red SHL 4) + (green SHL 2) + blue;
  17.   regs.AH := $10;
  18.   regs.AL := 0;
  19.   regs.BH := i;
  20.   regs.BL := c_index;  { the colour index to change }
  21.   Intr($10, regs);
  22. end;
  23.  
  24.